package JVM相关知识;

/**
 * @author coderFu
 * @create 2021/12/23
 */
public class NewMemoryDistributeDemo {

    private static final  int _1MB = 1024*1024;
    public static void main(String[] args) {

        /**
         * 进行内存分配的设置
         * -Xms 初始堆内存  20m
         * -Xmx 最大堆内存  20m
         * -Xmn 年轻代内存大小 10m
         * 以此可以知道 Eden 内存大小 8m
         *              survivor0 survivor1 各1m
         *              old 老年代的内存大小 10m
         *              -XX:UseSerialGC 使用 Serial垃圾回收器
         *              -XX:SurvivorRatio=8 新生代 Eden 和 survivor的比例 8 ： 1
         *              -XX:MaxTenuringThreshold 最大存活岁数1
         */

        byte[] demo1 , demo2 ,demo3 ,demo4,demo5;
        demo1 = new byte[_1MB*2];
        demo2 = new byte[_1MB*2];
        demo3 = new byte[_1MB*2];
        demo5 = new byte[_1MB*2];
        demo4 = new byte[_1MB*4];
        //第一次 全部在Eden 进行内存的分配 8m。并没有涉及到GC
        /**
         * 再次申请4m的内存将会进行第一次GC ， 并会触发分配担保机制， 将多余的
         * 对象存放在老年代中, 也可以设置一次GC后就将对象放入老年代。
         */
    }

}
